#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>

#include <iostream>
#include <string>
using namespace cv;
using namespace std;


int main(int argc, char *argv[])
{
    String imageName( "./images/photo.png" ); // by default
    if( argc > 1)
    {
        imageName = argv[1];
    }

    Mat image;
    image = imread( imageName, IMREAD_COLOR ); // Read the file

    if( image.empty() )                      // Check for invalid input
    {
        cout <<  "Could not open or find the image" << std::endl ;
        return -1;
    }

    cout << "size:" << image.size() << endl;
    cout << "ch:" << image.channels() << endl;
    cout << "type:" << image.type() << endl;
    // cout << "image = " << image << endl;
    /**
    for (int i = 0; i < image.rows; i++) {
        for (int j = 0; j < image.cols; j++) {
            Vec3b pixel = image.at<Vec3b>(i, j);
            cout << i+1 << j+1 << ":" << pixel << endl;
        }
    }
    */

    namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
    imshow( "Display window", image );                // Show our image inside it.
    waitKey(0); // Wait for a keystroke in the window

    return 0;
}
